package com.powernode.service;

import com.powernode.domain.MemberAddr;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface MemberAddrService extends IService<MemberAddr>{


    /**
     * 根据微信开放平台ID查询成员地址列表
     *
     * @param openId 微信开放平台ID，用于标识用户
     * @return 成员地址列表如果列表为空，表示该用户尚未添加任何地址
     */
    List<MemberAddr> queryMemberAddrListByOpenId(String openId);

    /**
     * 保存成员的新地址
     *
     * @param memberAddr 要保存的成员地址对象
     * @param openId 微信开放平台ID，用于关联地址与用户
     * @return 保存成功返回true，否则返回false
     */
    Boolean saveMemberAddr(MemberAddr memberAddr, String openId);

    /**
     * 修改成员的现有地址信息
     *
     * @param memberAddr 包含更新信息的成员地址对象
     * @param openId 微信开放平台ID，用于验证地址所属用户
     * @return 修改成功返回true，否则返回false
     */
    Boolean modifyMemberAddrInfo(MemberAddr memberAddr, String openId);

    /**
     * 根据地址ID删除成员地址
     *
     * @param addrId 要删除的地址ID
     * @param openId 微信开放平台ID，用于确认地址属于正确的用户
     * @return 删除成功返回true，否则返回false
     */
    Boolean removeMemberAddrById(Long addrId, String openId);

    /**
     * 修改成员的默认地址
     *
     * @param openId 微信开放平台ID，用于识别用户
     * @param newAddrId 新的默认地址ID
     * @return 修改成功返回true，否则返回false
     */
    Boolean modifyMemberDefaultAddr(String openId, Long newAddrId);
}
